The present invention relates to digital communications systems and, more particularly, to an encoding and decoding system in a disc drive or other data storage system.
In the field of digital communication systems, digital information is conveyed from a transmitter to a receiver through a channel. xe2x80x9cChannelxe2x80x9d is a generalized term that can include many different mediums, such as recording media, telephone lines and electromagnetic spectrum. In data storage systems, such as magnetic disc drives, the channel includes a storage medium, and the digital information is transmitted to the storage medium and stored for some period of time before being recovered and delivered to the receiver.
A typical magnetic disc drive includes one or more rigid discs mounted for rotation on a hub or spindle. Each disc has an associated head formed of a hydrodynamic bearing and a transducer, for communicating with the surface of the disc. An electromechanical actuator moves the data head radially over the disc surface for track seek operations and holds the transducer directly over a desired track on the disc surface for track following operations. A drive controller controls the disc drive based on commands received from a host system to retrieve information from the discs and to store information on the discs. The drive controller includes various subsystems, such as a xe2x80x9chost interfacexe2x80x9d for communicating with the host system, a xe2x80x9cservo subsystemxe2x80x9d for controlling the actuator, a xe2x80x9cwrite channelxe2x80x9d for recording data on a storage medium, and a xe2x80x9cread channelxe2x80x9d for receiving recorded data from the storage medium.
Information is typically stored in concentric data tracks on the disc surface. The direction of current through the transducer is controlled to encode magnetic flux reversals on the surface of the disc within the selected data track. In one type of coding, known as non-return-to-zero-inverse (NRZI) coding, a digital xe2x80x9conexe2x80x9d is represented by a magnetic flux reversal from one magnetic domain to the next in the data track, and a digital xe2x80x9czeroxe2x80x9d is represented by a lack of a magnetic flux reversal from one magnetic domain to the next.
In retrieving data from the disc, the servo subsystem controls the electromechanical actuator so that the data head flies over the desired data track, senses the flux reversals stored in the data track, and generates a read signal based on those flux reversals. The read signal is typically conditioned and then decoded by the read channel to recover the data represented by the flux reversals. A typical read channel includes automatic gain control circuitry, a low-pass filter, an analog-to-digital converter or sampler, a sequence detector and a decoder.
The pulse response of the channel has conventionally been equalized to a suitable partial response (PR) target of the form (1xe2x88x92D)m (1+D)n, wherein m and n are positive integers and D is a delay operator. A number of different PR targets have been developed, such as partial response class 2 (PR2), partial response class 4 (PR4), extended partial response class 4 (EPR4), and enhanced extended partial response class 4 (E2PR4) channels.
A Viterbi detector has been used in the past for the data detector in the read channel. A Viterbi detector acts as a maximum-likelihood (ML) sequence detector when the input to the detector consists of a signal plus additive white, Gaussian noise, and when a typical branch metric (the square of the error in the signal provided to the detector) is used. The detected bit sequence is then passed to the decoder for decoding into the original user data.
All channels, including disc drive storage channels, introduce noise into the signals they convey. To detect and some times correct signal errors caused by channel noise, a large number of coding techniques have been developed. These coding techniques convert user data words formed of a number of data bits into code words formed of a number of code bits. Coding constraints imposed in the code words can be designed to avoid bit sequences that are prone to generating error events and can permit the detection and sometimes the correction of errors in the signals received from the channel.
The average ratio of the number of user data bits to the number of code bits is known as the code rate of the code. In general, the ability to detect and correct errors in a received channel may be increased as the code rate decreases because a lower code rate means a greater amount of redundant information in the code word. However, each additional bit added by the encoder increases the time and energy needed to transmit the signal through the channel.
Several types of constraints have been proposed. For example, in a disc drive, the rotational speed of the spindle motor that rotates the magnetic media varies over time. This results in non-uniform time intervals between read signal voltage pulses. A phase-locked loop (PLL) is used to lock the phase and frequency of the read timing clock to the phase and frequency of the read signal voltage pulses. To ensure that the PLL is updated regularly, a code can be used that limits the number of consecutive zeros in the read signal to no greater than a maximum number xe2x80x9ckxe2x80x9d. This kind of code is known as a run-length-limited (RLL) code with a xe2x80x9ckxe2x80x9d constraint. The smaller value of xe2x80x9ckxe2x80x9d, the better the performance of the PLL. However, the smaller the value of xe2x80x9ckxe2x80x9d, the more difficult the code becomes to implement.
The code may also limit the number of consecutive ones in an encoded bit stream to limit the effects of inter-symbol interference, which occurs when consecutive transitions in the transmitted signal interfere with each other. Such codes are known as maximum transition run (MTR) codes with a xe2x80x9cjxe2x80x9d constraint, where xe2x80x9cjxe2x80x9d is the maximum number of consecutive transitions allowed in the channel signal. For example, to avoid three or more consecutive transitions, codes with an MTR constraint j=2 can be designed. Although MTR codes reduce inter-symbol interference, they eliminate a large number of available code words making it difficult and sometimes impossible to implement MTR constraints with high code rates.
As data storage technology continues to advance, there is a desire to increase the aerial density of the data storage system or to relax the manufacturing tolerances of the systems components while maintaining the same density. Increasing the aerial density or relaxing the manufacturing tolerances requires an increase in the signal-to-noise ratio (SNR) within the data storage channel. Alternatively, attempts can be made to increase the effective SNR as seen by the detector through improvements in the channel coding scheme and in the detector.
Certain data storage devices can be modeled as low-pass channels. For example, magneto-optical channels are often modeled as having a Gaussian impulse response. Perpendicular magnetic recording channels exhibit a similar response. Longitudinal recording channels have some low-pass characteristics, but are more accurately modeled as band-pass channels with a null at D.C. When applied to true low-pass channels, existing modulation codes provide little or no SNR improvement over an uncoded channel. A coding scheme is therefore desired that is capable of obtaining a particular bit error rate with less required SNR for certain low-pass channels.
The present invention addresses these and other problems, and offers other advantages over the prior art.
One aspect of the present invention relates to a data storage channel encoder, which includes a data word input, a code word output and an encoder. The encoder is coupled between the data word input and the code word output and is adapted to encode successive data words received on the data word input into successive code words on the code word output according to a selected code having a combined maximum transition run and parity constraint. The maximum transition run constraint constrains the successive code words such that, when the successive code words are concatenated to form an encoded bit stream, the encoded bit stream has a maximum of one consecutive transition beginning at either odd or even indexed bit positions in the encoded bit stream and a maximum of two consecutive transitions beginning at the other of the odd or even indexed bit positions.
In one embodiment, the parity constraint generates at least one parity bit on the code word output for each set of p successive code words, wherein p is a positive integer variable that is greater than zero. For example, two parity bits can be used, which can include a binary xe2x80x9c10xe2x80x9d or a binary xe2x80x9c01xe2x80x9d, depending upon the parity of the set of successive code words. In one example, the encoder is adapted to encode successive 3-bit data words received on the data word input into successive 4-bit code words on the code word output according to the selected code.
Another aspect of the present invention relates to a method of encoding successive data words into successive code words for transmission through a channel. The method includes mapping each successive data word into a corresponding one of the code words according to a selected code. The successive code words are concatenated to form an encoded bit stream having a plurality of even and odd indexed bit positions. A maximum transition run constraint is imposed on the selected code such that the encoded bit stream has a maximum possible run of one consecutive transition beginning in either one of the even or odd indexed bit positions in the encoded bit stream and has a maximum possible run of two consecutive transitions beginning in the other of the even or odd indexed bit positions in the encoded bit stream. A parity constraint is also imposed on the selected code.
Another aspect of the present invention relates to a data storage read channel for use in detecting successive code words in a storage channel output, the successive code words being encoded according to a code. The read channel includes a likelihood sequence detector, which is adapted to detect the successive code words. The detector has a detection sequence that effectively disallows detection of bit sequences in the storage channel output having greater than one consecutive transition beginning at either odd or even indexed bit positions in the bit sequence, bit sequences in the channel output having greater than two consecutive transitions beginning at the other of the odd or even indexed bit positions, and bit sequences in the channel output having a disallowed parity.
Yet another aspect of the present invention relates to a disc drive storage channel, which includes a transducer and an encoder. The transducer is capable of communicating with a data storage disc. The encoder is coupled to the transducer for encoding successive data words into successive code words according to a selected code to form an encoded bit stream, pre-coding the encoded bit stream and applying the pre-coded bit stream to the transducer as a channel input.
In one embodiment, the encoder constrains the successive code words such that encoded bit stream has a maximum of one consecutive transition beginning at either odd or even indexed bit positions in the encoded bit stream and a maximum of two consecutive transitions beginning at the other of the odd or even indexed bit positions and enforces a selected parity constraint on the channel input.